package qc.module.ehs.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import qc.common.core.enums.EhsHazardIndentificationResultTypeEnum;
import qc.common.core.enums.EhsRiskLevelEnum;

import java.io.Serializable;
import java.util.Date;

/**
 * EhsHazardBasic
 * 危险源信息表
 *
 * @author QuCheng Tech
 * @since 2024/6/13
 */
@Data
@TableName("ehs_hazard_info")
public class EhsHazardInfo implements Serializable,Cloneable {
       
    /*危险源ID*/
    @TableId
    private String hazardid;

    /*所属组织代码*/
    private String orgcode;

    /*危险源名称*/
    private String hazardname;

    /*单元ID*/
    private String unitid;
    
    /*单元名称；显示使用的信息*/
    private String unitname;
    
    /*设备设施ID；危险源可能不针对设备，可能针对环境、管理或作业活动*/
    private String facilityid;
    
    /*设备设施名称*/
    private String facilityname;
    
    /*所属危险源类别代码*/
    private String categorycode;

    /*所属危险源类别名称；显示使用的信息*/
    private String categoryname;

    /*所属危险源项目代码*/
    private String projectcode;

    /*所属危险源项目名称；显示使用的信息*/
    private String projectname;

    /*所属危险源清单代码*/
    private String itemcode;
    
    /*所属危险源清单名称；显示使用的信息*/
    private String itemname;

    /*是否为重大危险源*/
    private Boolean ismajor;

    /*具体部位；描述危险源的具体位置或设备*/
    private String position;

    /*事故诱因*/
    private String couse;

    /*可能导致的伤害*/
    private String maycouseharm;
    
    /*标题；隐患/问题的标题*/
    private String title;

    /*危险源描述*/
    //@TableField(updateStrategy = FieldStrategy.IGNORED) //设置修改策略为忽略，可修改为null
    private String description;
    
    /*附件；json格式，可以包含多个附件*/
    private String attachment;

    /*危险源辨识结果；不存在、存在第一类危险源、存在第二类危险源；使用EhsHazardIndentificationResultTypeEnum*/
    private EhsHazardIndentificationResultTypeEnum identificationresult;
    
    /*不安全因素；防控措施失效的原因：人的不安全行为、物的不安全状态、管理缺陷
     * 对应枚举值的和；可能有多种不安全因素
     */
    private Integer unsafefactor;

    /*最近辨识时间*/
    private Date recentidentificationtm;

    /*是否上报；是否向上级主管单位上报情况*/
    private Boolean isreport;

    /*责任部门ID*/
    private Integer resdeptid ;

    /*责任部门/机构名称*/
    private String resdeptname;

    /*责任人ID*/
    private Integer resuserid;

    /*责任人名称*/
    private String resusername;

    /*责任人电话*/
    private String resuserphone;

    /*监测监控措施*/
    private String monitoringmeasures;

    /*防控措施；管控措施*/
    private String conmeasures;

    /*是否进行风险评价；在重新辨识后是否进行风险评价*/
    private Boolean hasevl;
    
    /*风险评价时间*/
    private Date evltm;

    /*风险等级；4个风险等级*/
    private EhsRiskLevelEnum risklevel;
}
